//---------------------------------------------------------------------------

#ifndef GeracaoCtrSociaisH
#define GeracaoCtrSociaisH
#include "Word_2K_SRVR.h"
#include <OleServer.hpp>
//---------------------------------------------------------------------------
 enum TTypeCampoReg {tcrAdministrador,tcrSocioAdministrador,tcrSocioEntrada,tcrSocioSaida};
//---------------------------------------------------------------------------
class TGeracaoCtrSociais;
class TFuncaoGet : public TObject
 {
  public:
    AnsiString __fastcall  (*GetValor) (TFuncaoGet*);
    PHDataSource *DataSource;
    AnsiString Valor;
    bool GTLK;
 };
class TGeracaoCtrSociais
 {
  private://User Declarations

        PHDataSource *DSIntegralizacoes;
        PHDataSource *DSFiliais;
        PHDataSource *DSSocios;
        PHDataSource *DSSocioAdministrador;
        TStringList *ListaIdentificadores;
        TWordDocument *DocWord;
        TWordApplication *App;
        void __fastcall PosicionaDataSources(void);
        bool __fastcall PreencheDocumento(TWordDocument *W,AnsiString ArqGerar,AnsiString ArqMod);
        void __fastcall ProcessaContratos(TObject *Sender);
        void __fastcall VerificaCabecalhoRodape(void);
        void __fastcall Prepara_Word(void);
        void __fastcall MontaParagrafosSeparados(void);
        void __fastcall MontaParagrafosUnicos(TWordDocument *WDOC);  
        void __fastcall LimpaDoc(int Posicoes[]);
        void __fastcall Socios_Assinaturas(int Paragrafo);
        void __fastcall Testemunhas_Assinaturas(int Paragrafo);
        void __fastcall AdvogadosAssinaturas(int Paragrafo);
        void __fastcall CarregaIdentificadoresValidos(void);
        void __fastcall InicializaEstruturas(void);

        //Estruturas
        struct CTRSOC *CtSoc;
        #pragma pack(1)
        struct REGISTROS
         {
          AnsiString Logradouro;
          AnsiString Numero;
          AnsiString Complemento;
          AnsiString Bairro;
          AnsiString Municipio;
          AnsiString Estado;
          AnsiString Cep;
          AnsiString Endereco;
          AnsiString Nome;
          AnsiString NomeFantasia;
          AnsiString Observacoes;
          AnsiString Codigo;
          AnsiString ObjetoSocial;
          AnsiString TotalQuotas;
          AnsiString CapitalSocial;
          AnsiString CapitalIntegralizado;
          AnsiString Foro;
          AnsiString DataInicial;
          AnsiString Testemunha1;
          AnsiString Testemunha2;
          AnsiString CPFTest1;
          AnsiString CPFTest2;
          AnsiString CapitalSocialExtenso;
          AnsiString CapitalIntegralizadoExtenso;
          AnsiString TotalQuotasExtenso;
          AnsiString DataContratoExtenso;
          AnsiString DataContrato;
          AnsiString NomeAdvogado;
          AnsiString Registro_OAB;
          AnsiString CPF_Advogado;
          AnsiString DataRegistro;
          AnsiString Numero_NIRE;
         }*REG[2];
        #pragma pack()
        //Var
        AnsiString Arq_Gera_Word;
        AnsiString ArquivoAux;
        AnsiString MensagemGeracao;

        AnsiString DataInicialCliente;
        AnsiString DataEncerramentoCliente;
        AnsiString InscricaoFederal;


        int SociosEntradas;
        int SociosSaidas;
        int SociosAdministradores;
        
 public://User Declarations
        __fastcall TGeracaoCtrSociais(void);
        __fastcall ~TGeracaoCtrSociais(void);
        void __fastcall ExecutaGeracao(void);
        //Var Publics
        AnsiString CodigoCliente;
        AnsiString Contrato;
        AnsiString ContratoAnterior;
        AnsiString ModeloContrato;
        unsigned long DataGeracao;
        bool ParagrafosSeparados;

};
//---------------------------------------------------------------------------
#endif
